// utils/replaceTemplate.ts
import { Decimal } from 'decimal.js';
import type { BeiZhuForm } from "@/common/type/beizhu" // 导入ts 数据类型

// 核心替换函数（仅处理 {{key}}）
export function replaceTemplateKeys(template: string, apiData: BeiZhuForm[], isInit: boolean): string {
  // 创建 key-value 映射
  const keyMap = apiData.reduce((acc, item) => {
    const calculatedValue = item.type === "2" ? new Decimal(item.value).plus(item.increase).toNumber() : Math.round(Number(item.value)+Number(item.value)*( Number(item.increase)/100))
    // Math.round() 去除小数  item.value基础数值 item.increase成长数值   i装备阶数
    acc[item.key] =  calculatedValue.toString()
    if(isInit){
      item.value = calculatedValue;
    }
    return acc
  }, {} as Record<string, string>)
  // 直接全局替换 {{key}}
  return template.replace(/\{\{(\w+)\}\}/g, (_, key) => {
    return keyMap[key] || `{{${key}}}` // 找不到 key 时保留原标记
  })
}
